#include "SMG.h"

//数码管码表        //	 0     1     2     3     4     5     6     7     8     9
uchar code smgduan[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 	\
					//  10 A, 11 B, 12 C, 13 D, 14 E, 15 F, 16 -, 17灭, 18 U, 19 P  20 N  21 H
						0x88, 0x80, 0xC6, 0xC0, 0x86, 0x8E, 0xBF, 0xFF, 0xC1, 0x8C, 0xC8, 0x89
};

//界面显示
uchar menu_index = 0;	//界面索引
uchar xdata menu1[8];
uchar xdata menu2[8];
uchar xdata menu3[8];
uchar xdata menu4[8];
uchar xdata menu5[8];
uchar xdata menu6[8];

//数码管界面显示的变量
unsigned char test_num;
float f_Temperature;
unsigned char temperature_param = 35;
float f_Dac_Vol;

unsigned int Frequency_Data;
float Ultra_Distance;


void SMG_Show_Data(void)
{	
	//界面1 ---频率Hz显示界面--------------------------------------------------------------
	menu1[0] = smgduan[15];		//显示F
	menu1[1] = smgduan[17];
	menu1[2] = smgduan[17];
	if (Fre_Hz_KHz_change == 0)	//Hz单位显示
	{
		if (Frequency_Data >= 10000)//消除数据最高位 0 的操作
		{
			menu1[3] = smgduan[Frequency_Data /10000 % 10];
			menu1[4] = smgduan[Frequency_Data /1000 % 10];		//温度数据
			menu1[5] = smgduan[Frequency_Data /100 % 10];	//显示小数点
			menu1[6] = smgduan[Frequency_Data /10 % 10];
			menu1[7] = smgduan[Frequency_Data /1 % 10];
		}
		else if (Frequency_Data >= 1000 && Frequency_Data < 10000)
		{
			menu1[3] = smgduan[17];
			menu1[4] = smgduan[Frequency_Data /1000 % 10];		//温度数据
			menu1[5] = smgduan[Frequency_Data /100 % 10];	//显示小数点
			menu1[6] = smgduan[Frequency_Data /10 % 10];
			menu1[7] = smgduan[Frequency_Data /1 % 10];
		}
		else if (Frequency_Data >= 100 && Frequency_Data < 1000)
		{
			menu1[3] = smgduan[17];
			menu1[4] = smgduan[17];		//温度数据
			menu1[5] = smgduan[Frequency_Data /100 % 10];	//显示小数点
			menu1[6] = smgduan[Frequency_Data /10 % 10];
			menu1[7] = smgduan[Frequency_Data /1 % 10];
		}
		else if (Frequency_Data >= 10 && Frequency_Data < 100)
		{
			menu1[3] = smgduan[17];
			menu1[4] = smgduan[17];		//温度数据
			menu1[5] = smgduan[17];	//显示小数点
			menu1[6] = smgduan[Frequency_Data /10 % 10];
			menu1[7] = smgduan[Frequency_Data /1 % 10];
		}
	}
	else if (Fre_Hz_KHz_change == 1)//KHz单位显示
	{
		menu1[3] = smgduan[17];
		menu1[4] = smgduan[17];
		
		if (Frequency_Data >= 10000)
		{
			menu1[5] = smgduan[Frequency_Data /10000 % 10];	//显示小数点
			menu1[6] = smgduan[Frequency_Data /1000 % 10]&0x7F;
			menu1[7] = smgduan[Frequency_Data /100 % 10];
		}
		else if (Frequency_Data >= 1000 && Frequency_Data < 10000)
		{
			menu1[5] = smgduan[17];	//显示小数点
			menu1[6] = smgduan[Frequency_Data /1000 % 10]&0x7F;
			menu1[7] = smgduan[Frequency_Data /100 % 10];
		}
		else if (Frequency_Data >= 100 && Frequency_Data < 1000)
		{
			menu1[5] = smgduan[17];	//显示小数点
			menu1[6] = smgduan[0]&0x7F;
			menu1[7] = smgduan[Frequency_Data /100 % 10];
		}		
	}
	

	//界面2 --- 湿度 显示界面-------------------------------------------------------------------
	menu2[0] = smgduan[21];		//显示H
	menu2[1] = smgduan[17];		//熄灭
	menu2[2] = smgduan[17];
	menu2[3] = smgduan[17];		
	menu2[4] = smgduan[17];
	menu2[5] = smgduan[17];
	menu2[6] = smgduan[temperature_param / 10];
	menu2[7] = smgduan[temperature_param % 10];



	//界面2 --- 超声波距离显示界面-----------------------------------------------------------
	menu3[0] = smgduan[10];		//显示 A
	menu3[1] = smgduan[17];		
	menu3[2] = smgduan[17];		
	menu3[3] = smgduan[17];
	menu3[4] = smgduan[17];
	
	if (Ultra_Distance >= 100.0)
	{
		menu3[5] = smgduan[(int)Ultra_Distance / 100 %10];	
		menu3[6] = smgduan[(int)Ultra_Distance / 10 %10];
		menu3[7] = smgduan[(int)Ultra_Distance / 1 % 10];
	}
	else if (Ultra_Distance >= 10.0 && Ultra_Distance < 100.0)
	{
		menu3[5] = smgduan[17];	
		menu3[6] = smgduan[(int)Ultra_Distance / 10 %10];
		menu3[7] = smgduan[(int)Ultra_Distance / 1 % 10];
	}
	else if (Ultra_Distance < 10)
	{
		menu3[5] = smgduan[17];	
		menu3[6] = smgduan[17];
		menu3[7] = smgduan[(int)Ultra_Distance / 1 % 10];
	}
                                    
	//界面3 --- 通道1 光敏电阻显示界面------------------------------------------------------------                          
	menu4[0] = smgduan[18];
	menu4[1] = smgduan[16];
	menu4[2] = smgduan[1];		//通道 1
	menu4[3] = smgduan[17];
	menu4[4] = smgduan[17];
	menu4[5] = smgduan[17];
	menu4[6] = smgduan[17];
	menu4[7] = smgduan[17];
//	//界面5 --- ...
//	menu5[0] = smgduan[17];
//	menu5[1] = smgduan[17];
//	menu5[2] = smgduan[17];
//	menu5[3] = smgduan[17];
//	menu5[4] = smgduan[17];
//	menu5[5] = smgduan[17];
//	menu5[6] = smgduan[17];
//	menu5[7] = smgduan[17];
//	//界面6 --- ...
//	menu6[0] = smgduan[17];
//	menu6[1] = smgduan[17];
//	menu6[2] = smgduan[17];
//	menu6[3] = smgduan[17];
//	menu6[4] = smgduan[17];
//	menu6[5] = smgduan[17];
//	menu6[6] = smgduan[17];
//	menu6[7] = smgduan[17];
}


void Delay_ms(unsigned int xms)		//@12.000MHz
{
	unsigned char i, j;

	while(xms--)
	{
		i = 12;
		j = 169;
		do
		{
			while (--j);
		} while (--i);
	}
	
}



